﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using SRP_LibBusinessRules;
using SRP_LibBusinessEntity;
using System.Data;
using System.IO;


namespace SRPCENTRIA.ws_appPrivada  
{
    public partial class wManUsuario : BasePage
    {
        private DataTable dt = new DataTable();
        string pas;
         
        protected void Page_Load(object sender, EventArgs e)
        {
            lblError.Visible = false;
            if (!IsPostBack)
            {
                CargarDatos();

            }

        }


        private void CargarDatos()
        {
            try
            {
                NUsuario NUsuario = new NUsuario();

                dt = NUsuario.ListarUsuario(txtBuscar.Text);
                this.grvDatos.DataSource = dt;
                this.grvDatos.DataBind();


                NPerfil NPerfil = new NPerfil();
                dllPerfil.DataSource = NPerfil.ListarPerfil("");
                dllPerfil.DataTextField = "vper_nom_perfil";
                dllPerfil.DataValueField = "PK_IPER_IDPERFIL";
                dllPerfil.DataBind();
                dllPerfil.Items.Insert(0, new ListItem("-- Selecccionar --", "0"));
             
 
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            #region -- validar
           
            if (TxtUsuario.Text == "")
            {
                EscribirScriptManager("Favor debe ingresar Usuario");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe ingresar Usuario";
                return;
            }
            
            if (txtNombres.Text == "" )
            {
                EscribirScriptManager("Favor debe ingresar Nombre");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe ingresar Nombre";
                return; 
            }

            if (txtApellidos.Text == "")
            {
                EscribirScriptManager("Favor debe ingresar Apellidos");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe ingresar una Apellidos";
                return;
            }
            if  (txtEmail.Text == "")
            {
                EscribirScriptManager("Favor debe ingresar correo electrónico");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe ingresar Email";
                return;           
            }
            
            string empresa;

            if (RbEmpresaCentria.SelectedValue == "C" || RbEmpresaCentria.SelectedValue == "H")
            {
                if (dllEmpresa.SelectedValue == "0")
                {
                    EscribirScriptManager("Favor Seleccionar Empresa");
                    //lblError.Visible = true;
                    //lblError.Text = "Favor debe Seleccioanr Empresa";
                    return;
                }
                else {
                    empresa = dllEmpresa.SelectedValue.ToString();
                    lblError.Visible = false;
                }
            }
            else {

                EscribirScriptManager("Favor Seleccionar tipo de Empresa");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe Seleccioanr tipo de Empresa";
                RbEmpresaCentria.Focus();
                return;
            }


            if (dllPerfil.SelectedValue == "0")
            {
                EscribirScriptManager("Favor debe Seleccionar Perfil");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe Seleccioanr Perfil";
                return;
            }
            else
            {
               lblError.Visible = false;
            }
            if(txtNuevaC.Text == "")
            {
                EscribirScriptManager("Favor debe ingresar Contraseña");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe ingresar Contraseña";
                return;     
            }
                 
                 
            if( txtNuevaC2.Text == "")
            {
                EscribirScriptManager("Favor debe ingresar Contraseña");
                //lblError.Visible = true;
                //lblError.Text = "Debe ingresar una Contraseña";
                return;
            }

            if (txtNuevaC.Text.Trim() != txtNuevaC2.Text.Trim())
            {
                EscribirScriptManager("La contraseñas ingresadas no son iguales");
                //lblError.Visible = true;
                //lblError.Text = "La contraseñas ingresadas no son iguales"; 
                return;}
                       

                String estado;

                if (chkEstado.Checked == true)
                {
                    estado = "1";
                }
                else
                {
                    estado = "0";
                }

            #endregion

                NUsuario NUsuario = new NUsuario();

                if (NUsuario.InsertUsuario(TxtUsuario.Text.Trim(), txtNombres.Text.Trim(), txtApellidos.Text.Trim(), txtEmail.Text.Trim(), empresa, Convert.ToInt16(dllPerfil.SelectedValue.ToString()), Convert.ToInt16(estado), txtNuevaC2.Text.Trim()) == 1)
                {
                    EscribirScriptManager("Usuario insertado con éxito");
                    //lblError.Visible = true;
                    //lblError.Text = "Usuario insertado con éxito";
                }
                else
                {
                    EscribirScriptManager("No se pudo insertar el Usuario");
                    //lblError.Visible = true;
                    //lblError.Text = "No se pudo insertar el Usuario";
                }
                CargarDatos();
                Limpiar();             

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            CargarDatos();
        }

        public void Limpiar()
        {
            txtApellidos.Text = "";
            txtNombres.Text = "";
            TxtUsuario.Text = "";
            txtNuevaC.Text = "";
            txtNuevaC2.Text = "";
            txtEmail.Text = "";

            chkEstado.Checked = false;

            RbEmpresaCentria.DataBind();
            dllEmpresa.Visible = false;
        }

        protected void grvDatos_SelectedIndexChanged(object sender, EventArgs e)
        {

            CargarDatos();
            GridViewRow row = grvDatos.SelectedRow;
            
            String codigo;
            codigo = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["IUSU_ID_USUARIO"].Ordinal].ToString();
            hdnCodigo.Value = codigo;

            TxtUsuario.Text = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["Usuario"].Ordinal].ToString();
            txtNombres.Text = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["NAME"].Ordinal].ToString();
            txtApellidos.Text = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["APELLIDO"].Ordinal].ToString();
            txtEmail.Text = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["VUSU_EMAIL"].Ordinal].ToString();

            dllPerfil.SelectedValue = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["PK_IPER_IDPERFIL"].Ordinal].ToString();

            string empresa = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["VCEN_COD_EMPRESA_CENTRIA"].Ordinal].ToString();
            if (empresa.Substring(0, 1) == "C" || empresa.Substring(0, 1) == "H")
             {
                 RbEmpresaCentria.SelectedValue = empresa.Substring(0, 1);
                 dllEmpresa.Visible = true;
                 RbEmpresa_SelectedIndexChanged(sender, e);
                 dllEmpresa.SelectedValue = empresa;
               
             } 

            if (dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["Estado"].Ordinal].ToString() == "ACTIVO")
            {
                chkEstado.Checked = true;
            }
            else
            {
                chkEstado.Checked = false;
            }

            //ocultar botón agregar
            btnAgregar.Visible = false;
            //mostrar botón edición
            btnEditar.Visible = true;

            hdnPASS.Value = dt.Rows[row.DataItemIndex].ItemArray[dt.Columns["VUSU_USER_CLAVE"].Ordinal].ToString();

        }




        protected void btnEditar_Click(object sender, EventArgs e)
        {



            #region -- validar

            if (TxtUsuario.Text == "")
            {
                EscribirScriptManager("Favor de ingresar Usuario");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe ingresar Usuario";
                return;
            }

            if (txtNombres.Text == "")
            {
                EscribirScriptManager("Favor de ingresar Nombre");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe ingresar Nombre";
                return;
            }

            if (txtApellidos.Text == "")
            {
                EscribirScriptManager("Favor de ingresar Apellidos");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe ingresar una Apellidos";
                return;
            }
            if (txtEmail.Text == "")
            {
                EscribirScriptManager("Favor de ingresar correo electrónico");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe ingresar Email";
                return;
            }
            string empresa;
            if (RbEmpresaCentria.SelectedValue == "C" || RbEmpresaCentria.SelectedValue == "H")
            {
                if (dllEmpresa.SelectedValue == "0")
                {
                    EscribirScriptManager("Favor de  Seleccionar Empresa");
                    //lblError.Visible = true;
                    //lblError.Text = "Favor debe Seleccioanr Empresa";
                    return;
                }
                else
                {
                    empresa = dllEmpresa.SelectedValue.ToString();
                    lblError.Visible = false;
                }
            }
            else
            {
                EscribirScriptManager("Favor de Seleccionar tipo de Empresa");
                //lblError.Visible = true;
                //lblError.Text = "Favor debe Seleccioanr tipo de Empresa";
                RbEmpresaCentria.Focus();
                return;
            }

            if (txtNuevaC.Text.Trim() != "" || txtNuevaC2.Text.Trim() != "")
            {
                if (txtNuevaC.Text.Trim() != txtNuevaC2.Text.Trim())
                {
                    EscribirScriptManager("La contraseñas ingresadas no son iguales");
                    //lblError.Visible = true;
                    //lblError.Text = "La contraseñas ingresadas no son iguales";
                    return;
                }
               
            }
            else { txtNuevaC2.Text = hdnPASS.Value; }

           


            String estado;

            if (chkEstado.Checked == true)
            {
                estado = "1";
            }
            else
            {
                estado = "0";
            }

            #endregion



                NUsuario NUsuario = new NUsuario();

                if (NUsuario.UpdateUsuario(Convert.ToInt16(hdnCodigo.Value), TxtUsuario.Text.Trim(), txtNombres.Text.Trim(), txtApellidos.Text.Trim(), txtEmail.Text.Trim(), empresa, Convert.ToInt16(dllPerfil.SelectedValue.ToString()), Convert.ToInt16(estado), txtNuevaC2.Text.Trim()) == 1)
                {
                    EscribirScriptManager("Se Actualizo con éxito");
                    //lblError.Visible = true;
                    //lblError.Text = "Se Actualizo con éxito";
                }
                else
                {
                    EscribirScriptManager("No se pudo Actualizo");
                    //lblError.Visible = true;
                    //lblError.Text = "No se pudo Actualizo";
                }



                CargarDatos();
                Limpiar();

                //mostrar botón agregar
                btnAgregar.Visible = true;
                //ocultar botón edición
                btnEditar.Visible = false;
 
        }

        protected void grvDatos_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            grvDatos.PageIndex = e.NewPageIndex;
            CargarDatos();
        }

        protected void chkEstado_CheckedChanged(object sender, EventArgs e)
        {
        }

      
        protected void RbEmpresa_SelectedIndexChanged(object sender, EventArgs e)
        {
            dllEmpresa.Visible = true;
            NGenerico NGenerico = new NGenerico();
            if (RbEmpresaCentria.SelectedValue == "C")
            {
                dllEmpresa.DataSource = NGenerico.ListarEmp_Centria();
                dllEmpresa.DataTextField = "VCEN_DESC_EMPRESA_CENTRIA";
                dllEmpresa.DataValueField = "VCEN_COD_EMPRESA_CENTRIA";
                dllEmpresa.DataBind();
                dllEmpresa.Items.Insert(0, new ListItem("-- Selecccionar --", "0"));
            }
            else if (RbEmpresaCentria.SelectedValue == "H") 
            {
                dllEmpresa.DataSource = NGenerico.ListarEmp_Homolongadora_publica();
                dllEmpresa.DataTextField = "VCEN_DESC_EMPRESA_CENTRIA";
                dllEmpresa.DataValueField = "VCEN_COD_EMPRESA_CENTRIA";
                dllEmpresa.DataBind();
                dllEmpresa.Items.Insert(0, new ListItem("-- Selecccionar --", "0"));
            }
          
        }

       

    }

}